Personal computer systems are today in widespread use. The basic architecture of such computer systems has evolved into a relatively common design illustrated in FIG. 1. More specifically, personal computer systems 10, as illustrated in FIG. 1, include a central processing unit ("CPU") 12, which may be a microprocessor such as an Intel Pentium.RTM. microprocessor. The CPU 12 is connected to a system controller 14 through a CPU bus which normally includes a data bus, an address bus, and a control and status bus. The system controller 14 couples the CPU 12 to a system memory, such as a dynamic random access memory ("DRAM") 16. Typically, the system controller is coupled to the DRAM 16 through various addressing and control lines. A data bus of the DRAM 16 is connected directly to the data bus of the CPU bus 16. However, other configurations may also be used.
The system controller 14 also couples the CPU bus 16 to a relatively high speed bus, such as a peripheral component interconnect ("PCI") bus 20. The PCI bus 20 is coupled to various peripheral devices, such as a hard disk 22 and a network interface device 24, which may be a local area network ("LAN") card. The PCI bus 20 may also be coupled to other peripheral devices which are not shown in FIG. 1 for purposes of brevity and clarity.
The PCI bus 20 is also coupled through a PCI/ISA bus bridge 30 to a relatively low speed bus, such as an industry standard architecture (ISA) bus 32. The ISA bus 32 is coupled to a wide variety of peripheral devices, such as a floppy disk drive 33, a keyboard 34, a mouse 36, a modem 38, a video card 40, and a programmable read-only memory ("PROM") 42. The video card 40 is, in turn, connected to a display 46, such as a cathode ray tube ("CRT") monitor.
As with the PCI bus 20, a wide variety of other peripheral devices may be connected to the ISA bus 32. Also, peripheral devices connected to the ISA bus 32, such as the modem 38 and the PROM 42, may be instead connected to the PCI bus 20. Finally, other components typically used in personal computer systems 10, such as cache static RAM ("SRAM") memory, interrupt handlers, and various control circuitry for the CPU 12, have been omitted for purposes of clarity and brevity.
In operation, when power is initially applied to the computer system 10, the CPU 12 accesses a specific memory address in the address space of the PROM 42. The CPU 12 then starts executing a basic input/output system ("BIOS") program stored in the PROM 42. The BIOS program stored in the PROM 42 causes the CPU 12 to execute a power-on self test ("POST") program and to then load an operating system that is typically stored on the hard disk 22. Once the operating system has been executed by the CPU 12 and stored in the system memory 18, the CPU 12 can execute various application programs, as well known to one skilled in the art.
In practice, the architecture of the computer system raises several issues concerning the selection and/or execution of the BIOS program. For example, the computer system chip set, including all of the components shown in FIG. 1, are generally mounted on a motherboard, although individual components, such as the CPU 12, may be individually removable from the motherboard (not shown). However, since the PROM 42 and CPU 12 are mounted on a common motherboard, the BIOS program stored in the PROM 42 is assuredly the correct BIOS program for the chip set, including the particular CPU 12 included in the chip set. The computer system 10 shown in FIG. 1 might not operate satisfactorily if the CPU 12 or other chip set component was replaced with a variety of CPU's or other chip set components that did not correspond to the particular BIOS program stored in the PROM 42. In particular, the BIOS program stored in the PROM 42 may not be the correct BIOS program for the CPU 12 or the correct BIOS program for other components of the chip set. As a result, to the extent that CPUs 12 or other chip set components have been removable from motherboards, they generally may be replaced by only the same type of CPU or chip set component so that they will properly function with the particular BIOS program stored on a PROM 42 or similar device on the motherboard. However, it would be desirable to be able to use different CPUs 12 or other chip set components on a common motherboard for a variety of reasons. For example, it would be desirable to allow different CPUs 12 or other chip set components to be placed on a common motherboard to specially adapt the computer system 10 to various uses. Also, it would be desirable to allow a different CPU 12 or other chip set component to be placed on the motherboard to upgrade the computer system 10 as new devices became available. Unfortunately, if the BIOS program is stored in a memory device mounted on the motherboard, there is no way to ensure correspondency between the BIOS program and the new CPU or other chip set components. It would therefore be desirable to allow various CPUs or other chip set components to be installed on a motherboard even though the BIOS for the CPU or other chip set component is contained in a memory device that remains installed on the motherboard.
Another issue raised by the architecture of computer systems is ensuring that the proper BIOS program is executed in computer systems having more than one BIOS program retained in a storage device. For example, the computer system may have several BIOS programs retained in a storage device, yet the CPU may be capable on executing only one of the BIOS programs, or the BIOS program may be specially adapted for optimum performance with a specific chip set. Under these circumstances, it is necessary to verify that the proper BIOS program has been selected for execution, and, if not, either select a different BIOS program or input the proper BIOS program into the computer system. However, computer system have heretofore not accomplished these functions.